package com.clstu.recursion;

/**
 * 演示递归的简单原理
 */
public class RecursionTest {
    public static void main(String[] args) {
        f(5);
        System.out.println(factor(5));
        //打印斐波那契数列
        for (int i = 1; i < 10; i++) {
            System.out.println("第"+i+"项:"+fb(i));
        }
    }
    //递归算法打印数字1~n
    public static void f(int n){
        //如果到最后
        if(n==0){
            return;
        }
        f(n-1);
        System.out.println("n="+n);
    }

    //递归算法求阶层
    public static int factor(int n){
        //如果到最后
        if(n==1){
            return n;
        }
        return factor(n-1)*n;
    }

    //递归求斐波那契数列
    public static int fb(int n){
        //最后结束条件
        if (n==1||n==2){
            return n;
        }
        return fb(n-1)+fb(n-2);
    }
}
